package com.example.deepschool.Model;

import lombok.Getter;

/**
 * 分页信息辅助类，用于内部处理分页逻辑。
 */
@Getter
public class Pagination {
	
	/**
	 * 偏移量，用于计算当前页第一条记录的位置。
	 */
	private Integer offset;
	
	/**
	 * 每页显示的记录数量。
	 */
	private Integer limit;
	
	/**
	 * 设置默认分页参数，每页固定为10条记录。
	 *
	 * @param page 当前页码
	 */
	public Pagination page (Integer page) {
		this.limit = 10;
		this.offset = (page - 1) * limit;
		return this;
	}
	
	/**
	 * 自定义分页参数，允许设置每页记录数量。
	 *
	 * @param page  当前页码
	 * @param limit 每页记录数量，最大值为20
	 */
	public Pagination page (Integer page, Integer limit) {
		this.limit = limit <= 20 ? limit : 20;
		this.offset = (page - 1) * limit;
		return this;
	}
}
